{% if varnish_version is version('4.0', '>=') %}
vcl 4.0;
{% endif %}

# This is a basic VCL configuration file for varnish.  See the vcl(7)
# man page for details on VCL syntax and semantics.
#
# Default backend definition.  Set this to point to your content
# server.
backend default {
  .host = "{{ varnish_default_backend_host }}";
  .port = "{{ varnish_default_backend_port }}";
}

{% if varnish_backends is defined %}
# Other backend servers.
{% for backend, value in varnish_backends.items() | list %}
backend {{ backend }} {
  .host = "{{ value.host }}";
  .port = "{{ value.port }}";
}
{% endfor %}
{% endif %}

sub vcl_recv {
{% if varnish_vhosts is defined %}
  # Varnish vhosts.
{% for vhost, value in varnish_vhosts.items() | list if varnish_vhosts is defined %}
  {% if loop.first %}
  if (req.http.host == "{{ vhost }}" || req.http.host == "www.{{ vhost }}") {
  {% else %}
  elseif (req.http.host == "{{ vhost }}" || req.http.host == "www.{{ vhost }}") {
  {% endif %}
    set req.backend_hint = {{ value.backend }};
  }
{% endfor %}
{% endif %}
}
